package nl.vu.few.ibivu.biomodels.shared.uniprot;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Embedded;
import javax.persistence.Id;

import com.googlecode.objectify.annotation.Indexed;
import com.googlecode.objectify.annotation.Unindexed;

public class UniprotEntity {
	private @Id String id;
	private @Indexed List<String> accession;
	private @Indexed @Embedded Protein recommendedName;
	private @Indexed @Embedded List<Protein> alternativeName;
	private @Indexed @Embedded Gene gene;
	private @Unindexed Organism organism;
	
	private UniprotEntity() {
		id = null;
		accession = new ArrayList<String>();
		recommendedName = new Protein();
		alternativeName = new ArrayList<Protein>();
		gene = new Gene();
		organism = new Organism();
	}
	
	public UniprotEntity(String id) {
		this();
		this.id = id;
	}

	public List<String> getAccession() {
		return accession;
	}

	public void setAccession(List<String> accession) {
		this.accession = accession;
	}

	public Protein getRecommendedName() {
		return recommendedName;
	}

	public void setRecommendedName(Protein recommendedName) {
		this.recommendedName = recommendedName;
	}

	public List<Protein> getAlternativeName() {
		return alternativeName;
	}

	public void setAlternativeName(List<Protein> alternativeName) {
		this.alternativeName = alternativeName;
	}

	public Gene getGene() {
		return gene;
	}

	public void setGene(Gene gene) {
		this.gene = gene;
	}

	public Organism getOrganism() {
		return organism;
	}

	public void setOrganism(Organism organism) {
		this.organism = organism;
	}

	public String getId() {
		return id;
	}
	
}
